Статья от команды Basedash про то, как она в течение года использовала React Query, но решила уйти обратно в fetch + redux для загрузки и хранения данных.

Основная проблема, на которую указывают в посте, это изменение данных в кэше React Query. Например, вы загрузили данные о пользователе и пользователь из интерфейса обновил свой логин. Теперь вам надо чтобы во всех местах, где был useQuery с данными пользователя, обновился логин.

Вы можете сбросить кэш и тогда React Query сделает новый запрос, но это лишний сетевой вызов и, возможно, мигание интерфейса.

Вы можете использовать внутреннее API React Query для изменения сохраненных в кэше данных. Но и тут все непросто т.к. надо про это не забыть и правильно все вызвать, чтобы обновилось действительно во всех местах использования данных.

Я очень коротко пересказал суть проблемы, в статье это описано немного подробнее.

Поэтому команда решила использовать загрузку данных через fetch и складывать все в redux. При этом используют мощь redux-toolkit и нормализации данных